package com.sjgtw.cloud.app.riskReporting.service;

import com.alibaba.fastjson.JSONObject;
import com.sjgtw.cloud.app.riskReporting.domain.RiskReporting;
import com.sjgtw.cloud.app.riskReporting.domain.RiskTracking;

import java.util.List;
import java.util.Map;

/**
 * 风险上报Service接口
 * 
 * @author ruoyi
 * @date 2024-03-17
 */
public interface IRiskReportingService 
{
    /**
     * 查询风险上报
     * 
     * @param id 风险上报主键
     * @return 风险上报
     */
    public RiskReporting selectRiskReportingById(Long id);

    /**
     * 查询风险上报列表
     * 
     * @param riskReporting 风险上报
     * @return 风险上报集合
     */
    public List<Map<String,Object>> selectRiskReportingList(RiskReporting riskReporting);


    public List<Map<String,Object>>  selectTaskManagementList(RiskReporting riskReporting);

    public List<Map<String,Object>>  getEmergencyTask(RiskReporting riskReporting);

    public int taskDistribute(JSONObject jsonObject);

    public int confirmTask(Long id);
    public int finishTask(Long id);

    public List<Map<String, Object>> getTaskDistributeUser(Long id);
    /**
     * 新增风险上报
     * 
     * @param riskReporting 风险上报
     * @return 结果
     */
    public int insertRiskReporting(RiskReporting riskReporting);

    /**
     * 修改风险上报
     * 
     * @param riskReporting 风险上报
     * @return 结果
     */
    public int updateRiskReporting(RiskReporting riskReporting);

    /**
     * 批量删除风险上报
     * 
     * @param ids 需要删除的风险上报主键集合
     * @return 结果
     */
    public int deleteRiskReportingByIds(Long[] ids);

    /**
     * 删除风险上报信息
     * 
     * @param id 风险上报主键
     * @return 结果
     */
    public int deleteRiskReportingById(Long id);

    int track(RiskTracking riskTracking);

    RiskTracking getMyTrack(Long riskId);

    List<RiskTracking> getTracksByRiskIdWithRealLocation(Long riskId);

    List<RiskTracking> getTracksByRiskId(Long riskId);

    List<Map<String, Object>> screenList();

    Map<String, Object> emergencyScreenDetail(Long id);
}
